// app.js
import {basicConfig} from "./api/public.js";
import {loadFontAwesome} from "./utils/fontLoader.js";

App({
  globalData: {
    spid: 0,
    code: 0,
    debug: true,
    isLogin: false,
    userInfo: {},
    MyMenus: [],
    globalData: false,
    isIframe: false,
    tabbarShow: true,
    windowHeight: 0,
    locale: '',
    fontsLoaded: false  // 字体加载状态
  },
  onLaunch: function() {
    console.log('🚀 小程序启动');
    
    // 立即开始加载字体，不阻塞其他初始化
    this.loadFonts();
    
    // 配置信息
    basicConfig().then((res) => {
      wx.setStorageSync('BASIC_CONFIG', res.data);
    }).catch((error) => {
      console.error('获取基础配置失败:', error);
      // 设置默认配置
      wx.setStorageSync('BASIC_CONFIG', {
        wechat_auth_switch: false
      });
    });

    // 登录
    // wx.login({
    //   success: res => {
    //     console.log(res.code)
    //     // 发送 res.code 到后台换取 openId, sessionKey, unionId
    //   },
    // })
  },

  /**
   * 加载字体文件
   * 使用 wx.loadFontFace API 代替 CSS @font-face
   */
  loadFonts: function() {
    const startTime = Date.now();
    console.log('🎨 开始加载应用字体...');
    
    loadFontAwesome().then((results) => {
      const endTime = Date.now();
      const duration = endTime - startTime;
      
      this.globalData.fontsLoaded = true;
      console.log(`✅ 字体加载完成，耗时: ${duration}ms`);
      
      // 触发字体加载完成事件，通知页面可以刷新显示
      wx.$emitter && wx.$emitter.emit('fontsLoaded', {
        success: true,
        duration: duration,
        results: results
      });
      
    }).catch((error) => {
      console.error('❌ 字体加载异常:', error);
      this.globalData.fontsLoaded = false;
      
      // 触发字体加载失败事件
      wx.$emitter && wx.$emitter.emit('fontsLoaded', {
        success: false,
        error: error
      });
    });
  },

  /**
   * 重试加载字体
   * 可在页面中调用：getApp().retryLoadFonts()
   */
  retryLoadFonts: function() {
    console.log('🔄 重试加载字体');
    this.globalData.fontsLoaded = false;
    this.loadFonts();
  }
});
